/*
 * Projeto #1 de PPI - SI Fatec - CPB 4º Semestre - Vespertino
 * @author Thiago Ribeiro Brandão R.A 1430431112037
 * Classe Pedido
 */
package br.fatec.ppi.projeto;


import javax.persistence.Column;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;


@Entity
public class Pedido {
    @Id
    private int idPedido;
    private String ordemServico;
    private Integer numAnimaisDoentes;
    private Integer numAnimaisMortos;
    private String vermifugacao;
    @Temporal(TemporalType.DATE)
    private Date dtVermifugacao;
    private TipoPostagem tipoPostagem;
    @Temporal(TemporalType.DATE)
    private Date dtPostagem;
    @Temporal(TemporalType.DATE)
    private Date dtRecebimento;
    @Temporal(TemporalType.DATE)
    private Date hrRecebimento;
    private boolean cobrarCliente;
    private boolean cobrarVeterinario;
    private boolean laudoCliente;
    private boolean laudoVeterinario;
    @Temporal(TemporalType.DATE)
    private Date criadoEm;
    private String numTa;
    private Status status;
    private String informClinicas;
    private String dadosEpidemologicos;
    private String achadosMacroscopicos;
    
    @ManyToMany
    private List<TipoVacina> tipoVacina;
    @ManyToMany
    private List<SistemaAfetado> sistemaAfetado;
    @ManyToMany
    private List<TipoCriacao> tipoCriacao;
    @ManyToMany
    private List<TipoExploracao> tipoExploracao;
    @ManyToMany
    private List<CondicaoEstoque> condicaoEstoque;
    @ManyToMany
    private List<FinalidadeExame> finalidadeExame;
    @OneToOne
    private Triagem triagem;
    @OneToMany
    private List<Contato> contato;
    @Column(nullable=false)
    @ManyToOne
    private Cliente cliente;
    @Column(nullable=false)
    @ManyToOne
    private Veterinario veterinario;
    @OneToMany
    private List<Usuario> usuario;
    @Column(nullable=false)
    @OneToMany
    private List<Exame> exame;
    
    public Pedido(){
        this.tipoVacina = new ArrayList();
        this.sistemaAfetado = new ArrayList();
        this.tipoCriacao = new ArrayList();
        this.tipoExploracao = new ArrayList();
        this.condicaoEstoque = new ArrayList();
        this.finalidadeExame = new ArrayList();
        this.triagem = new Triagem();
        this.contato = new ArrayList();
        this.cliente = new Cliente();
        this.veterinario = new Veterinario();
        this.usuario = new ArrayList();
        this.exame = new ArrayList();    
    }

    public int getIdPedido() {
        return idPedido;
    }

    public void setIdPedido(int idPedido) {
        this.idPedido = idPedido;
    }

    public String getOrdemServico() {
        return ordemServico;
    }

    public void setOrdemServico(String ordemServico) {
        this.ordemServico = ordemServico;
    }

    public Integer getNumAnimaisDoentes() {
        return numAnimaisDoentes;
    }

    public void setNumAnimaisDoentes(Integer numAnimaisDoentes) {
        this.numAnimaisDoentes = numAnimaisDoentes;
    }

    public Integer getNumAnimaisMortos() {
        return numAnimaisMortos;
    }

    public void setNumAnimaisMortos(Integer numAnimaisMortos) {
        this.numAnimaisMortos = numAnimaisMortos;
    }

    public String getVermifugacao() {
        return vermifugacao;
    }

    public void setVermifugacao(String vermifugacao) {
        this.vermifugacao = vermifugacao;
    }

    public Date getDtVermifugacao() {
        return dtVermifugacao;
    }

    public void setDtVermifugacao(Date dtVermifugacao) {
        this.dtVermifugacao = dtVermifugacao;
    }

    public TipoPostagem getTipoPostagem() {
        return tipoPostagem;
    }

    public void setTipoPostagem(TipoPostagem tipoPostagem) {
        this.tipoPostagem = tipoPostagem;
    }

    public Date getDtPostagem() {
        return dtPostagem;
    }

    public void setDtPostagem(Date dtPostagem) {
        this.dtPostagem = dtPostagem;
    }

    public Date getDtRecebimento() {
        return dtRecebimento;
    }

    public void setDtRecebimento(Date dtRecebimento) {
        this.dtRecebimento = dtRecebimento;
    }

    public Date getHrRecebimento() {
        return hrRecebimento;
    }

    public void setHrRecebimento(Date hrRecebimento) {
        this.hrRecebimento = hrRecebimento;
    }

    public boolean isCobrarCliente() {
        return cobrarCliente;
    }

    public void setCobrarCliente(boolean cobrarCliente) {
        this.cobrarCliente = cobrarCliente;
    }

    public boolean isCobrarVeterinario() {
        return cobrarVeterinario;
    }

    public void setCobrarVeterinario(boolean cobrarVeterinario) {
        this.cobrarVeterinario = cobrarVeterinario;
    }

    public boolean isLaudoCliente() {
        return laudoCliente;
    }

    public void setLaudoCliente(boolean laudoCliente) {
        this.laudoCliente = laudoCliente;
    }

    public boolean isLaudoVeterinario() {
        return laudoVeterinario;
    }

    public void setLaudoVeterinario(boolean laudoVeterinario) {
        this.laudoVeterinario = laudoVeterinario;
    }

    public Date getCriadoEm() {
        return criadoEm;
    }

    public void setCriadoEm(Date criadoEm) {
        this.criadoEm = criadoEm;
    }

    public String getNumTa() {
        return numTa;
    }

    public void setNumTa(String numTa) {
        this.numTa = numTa;
    }

    public Status getStatus() {
        return status;
    }

    public void setStatus(Status status) {
        this.status = status;
    }

    public String getInformClinicas() {
        return informClinicas;
    }

    public void setInformClinicas(String informClinicas) {
        this.informClinicas = informClinicas;
    }

    public String getDadosEpidemologicos() {
        return dadosEpidemologicos;
    }

    public void setDadosEpidemologicos(String dadosEpidemologicos) {
        this.dadosEpidemologicos = dadosEpidemologicos;
    }

    public String getAchadosMacroscopicos() {
        return achadosMacroscopicos;
    }

    public void setAchadosMacroscopicos(String achadosMacroscopicos) {
        this.achadosMacroscopicos = achadosMacroscopicos;
    }

    public List<TipoVacina> getTipoVacina() {
        return tipoVacina;
    }

    public void setTipoVacina(List<TipoVacina> tipoVacina) {
        this.tipoVacina = tipoVacina;
    }

    public List<SistemaAfetado> getSistemaAfetado() {
        return sistemaAfetado;
    }

    public void setSistemaAfetado(List<SistemaAfetado> sistemaAfetado) {
        this.sistemaAfetado = sistemaAfetado;
    }

    public List<TipoCriacao> getTipoCriacao() {
        return tipoCriacao;
    }

    public void setTipoCriacao(List<TipoCriacao> tipoCriacao) {
        this.tipoCriacao = tipoCriacao;
    }

    public List<TipoExploracao> getTipoExploracao() {
        return tipoExploracao;
    }

    public void setTipoExploracao(List<TipoExploracao> tipoExploracao) {
        this.tipoExploracao = tipoExploracao;
    }

    public List<CondicaoEstoque> getCondicaoEstoque() {
        return condicaoEstoque;
    }

    public void setCondicaoEstoque(List<CondicaoEstoque> condicaoEstoque) {
        this.condicaoEstoque = condicaoEstoque;
    }

    public List<FinalidadeExame> getFinalidadeExame() {
        return finalidadeExame;
    }

    public void setFinalidadeExame(List<FinalidadeExame> finalidadeExame) {
        this.finalidadeExame = finalidadeExame;
    }

    public Triagem getTriagem() {
        return triagem;
    }

    public void setTriagem(Triagem triagem) {
        this.triagem = triagem;
    }

    public List<Contato> getContato() {
        return contato;
    }

    public void setContato(List<Contato> contato) {
        this.contato = contato;
    }

    public Cliente getCliente() {
        return cliente;
    }

    public void setCliente(Cliente cliente) {
        this.cliente = cliente;
    }

    public Veterinario getVeterinario() {
        return veterinario;
    }

    public void setVeterinario(Veterinario veterinario) {
        this.veterinario = veterinario;
    }

    public List<Usuario> getUsuario() {
        return usuario;
    }

    public void setUsuario(List<Usuario> usuario) {
        this.usuario = usuario;
    }

    public List<Exame> getExame() {
        return exame;
    }

    public void setExame(List<Exame> exame) {
        this.exame = exame;
    }
    
    
}

